/**
 * 代号:金花 
 * 文件名：Wolf.java
 * 创建人：jh
 * 日期：2018年6月29日
 * 修改人：
 * 描述：
 */
package cc.pattern.observer;

import cc.pattern.util.Console;

import java.util.ArrayList;
import java.util.List;

/**
 * 用途：业务模块名称
 * 灰太狼实现类(被观察者)
 */
public class Wolf implements Observerable {
	
    private List<Observer> list = new ArrayList<Observer>();
    private String msg;
	/**
	 *  @功能:移除羊
	 *  @作者:jh @代号:金花
	 *  @时间:2018年6月29日
	 *  @param observer
	 *  @return  
	 */
	public String delete(Observer observer) {
		// TODO Auto-generated method stub
		if(!list.isEmpty()) {
			list.remove(observer);
		}
		return String.valueOf(list.size());
	}

	/**
	 *  @功能:添加羊
	 *  @作者:jh @代号:金花
	 *  @时间:2018年6月29日
	 *  @param observer
	 *  @return  
	 */
	public String add(Observer observer) {
		// TODO Auto-generated method stub
		list.add(observer);
		return String.valueOf(list.size());
	}

	/**
	 *  @功能:通知所有羊
	 *  @作者:jh @代号:金花
	 *  @时间:2018年6月29日
	 *  @return  
	 */
	public String notifyPerson() {
		for (Observer observer : list) {
			observer.receivedMsg(msg);
		}
		return String.valueOf(list.size());
	}
	
	/**
	 *  @功能:调用数据
	 *  @作者:jh @代号:金花
	 *  @时间:2018年6月29日
	 *  @param msg  
	 */
	public void setInfomation(String msg) {
		this.msg = msg;
		Console.log("更新消息： " + msg+"/n");
		// 消息更新，通知所有观察者
		this.notifyPerson();
	}
}
